package com.learn.acm.topview;

import java.util.HashMap;

/**
 * @author zhongshitao
 * @date 2020/12/23 2:50 下午
 *
 * 多数元素
 * 您已有成功提交记录，请确认是否跳过？
 *
 * 跳过即视为本节
 * 已完成
 *
 *
 * 跳过
 *
 * 重新做题
 * 给定一个大小为 n 的数组，找到其中的多数元素。多数元素是指在数组中出现次数大于 ⌊ n/2 ⌋ 的元素。
 *
 * 你可以假设数组是非空的，并且给定的数组总是存在多数元素。
 *
 *
 *
 * 示例1:
 *
 * 输入: [3,2,3]
 * 输出: 3
 * 示例2:
 *
 * 输入: [2,2,1,1,1,2,2]
 * 输出: 2
 *
 */
public class MoreNums {

    public int majorityElement(int[] nums) {
        HashMap<Integer, Integer> map = new HashMap();
        for (int i : nums) {
            int a = map.getOrDefault(i,0);
            map.put(i,a+1);
        }
        int midNums = nums.length / 2;
        for (Integer a : map.keySet()) {
            if (map.get(a) > midNums) {
                return a;
            }
        }
        return 0;
    }
}
